package com.api.apigateway.service;

import org.springframework.cloud.gateway.route.RouteDefinition;
import reactor.core.publisher.Mono;

import java.util.List;

/**
 * @author: 崔老爷
 * Date: 2024/10/18 19:39
 * @Description:
 */
public interface RouteService {

    /**
     * 路由加载刷新 （刷新多节点的gateway路由，一个节点添加了新路由那么其他节点的gateway也需要刷新路由）
     * @return 是否成功：true-成功，false-失败
     */
    public boolean loadAndRefresh();
    /**
     *  添加路由
     * @param routeId
     * @param targetUrl
     * @param path
     */
   void addRoute(String routeId, String targetUrl, String path);

    /**
     * 删除路由
     * @param routeId
     */
    public void deleteRoute(String routeId);

    /**
     * 获取网关
     * @return 是否成功：true-成功，false-失败
     */
    Mono<List<RouteDefinition>> getGateway();
}
